package com.jkl.service.project.inter;

import java.util.List;

import com.jkl.entity.BaseResponseDTO;
import com.jkl.entity.project.dto.VillageDTO;
import com.jkl.entity.project.po.*;
import com.jkl.entity.project.vo.*;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.jkl.entity.bsAddition.BsAddition;
import com.jkl.entity.bsWorkflowLog.BsWorkflowLog;
import com.jkl.entity.drTable.DrTable;
import com.jkl.entity.param.BSParam;
import com.jkl.entity.project.extend.PJVillage;

import com.jkl.entity.role.BsRole;

/**    
 * <p>Copyright： 东软烟草产品研发团队</p>   
 */

/**
 * <p>123接口<p>
 * <p> 变更说明：ji.k 2018年10月01日  123接口<p>
 * Date:2018年10月01日
 * @author ji.k
 * @version 1.0
 */

public interface IPJProjectService  {
	//首页start
	List<HomePageLeft> homePageLeft(String homePageName);
	
	List<HomePageLeft> homePageLine(String homePageName);
	//首页end
	
	//图表分析
	List<StatisticsSiteType> statisticsSiteType(StatisticsSiteType param);
	//站start
	//PageInfo<PJProjectNew> queryProjectByparamsNew(PJProjectNew param);//列表
	PageInfo<PJProject> queryProjectByparamsNew(PJProject param);// 列表
	
	int updateStatus(String rowId,String Status);//改变状态
	
	PJProjectNew queryProjectNew(int rowId);//主表单个查询
	
	int updateProjectNew(PJProjectNew projectNew);//主表更新
	
	int addPJProjectNew(PJProjectNew param);//新增
	
	
	
	//int addBurn(PJProjectAddBurn param);//垃圾焚烧站--新增
	int addBurn(PJProjectBurn param, List<MultipartFile> fileList);
	//PJProjectAddBurn queryBurn(String projectId);//垃圾焚烧站--查询
	PJProjectBurn queryBurn(String projectId);
	//int updateBurn(PJProjectAddBurn param);//垃圾焚烧站--更新
	void updateBurn(PJProjectBurn param, List<MultipartFile> fileList);
	
	//int addKitchen(PJProjectAddKitchen param);//厨余垃圾--新增
	//PJProjectAddKitchen queryKitchen(String projectId);//厨余垃圾--查询
	//int updateKitchen(PJProjectAddKitchen param);//厨余垃圾--更新
	int addKitchen(PJProjectKitchen param, List<MultipartFile> fileList);
	PJProjectKitchen queryKitchen(String projectId);
	void updateKitchen(PJProjectKitchen param, List<MultipartFile> fileList);

	
	
	
	
	
	
	
	
	PJProjectAddCoordinate queryCoordinate(String projectId);//经纬度-查询
	int updateCoordinate(PJProject param);
	List<PJProjectNew> queryCoordinateAll(PJProjectNew param);//经纬度-查询全部
	
	
	
	
	int getRowId();//获取id
	//站end
	
	//车start
	PageInfo<PJProjectCar> queryCarProject(PJProjectCar param);//列表
	
	PJProjectCar queryCarObject(String projectId);
	
	int addCarProject(PJProjectCar param);//新增
	
	int updateCarProject(PJProjectCar param);//修改
	//车end
	
	//效绩考核
	PageInfo<PJProjectIndexSetting> queryIndexSetting(PJProjectIndexSetting param);//效绩考核列表
	PJProjectIndexSetting queryIndexSettingObject(String projectId);//查询
	//绩效考核end
	//6 int addProject(PJProject projetInfo, List<MultipartFile> fileList);

	//3 void submitProject(PJProject projetInfo, List<MultipartFile> fileList);

	JSONObject queryProjectInfoById(String projectId);

	//1 void updateProjectInf(PJProject projetInfo, List<PJProjectPicture> delePictureList, List<MultipartFile> fileList);

	//4 void ctiyAuditProject(PJProject projectInfo);

	//5 void provinceAuditProject(PJProject projectInfo);

	void projectReport(ProjectReportVO projectReportVO, List<MultipartFile> fileList);

	JSONObject queryProjectLogByProjectId(String projectId);

	PageInfo<PJProject> queryProjectByparams(PJProject param);
	
	PageInfo<BSParam> queryInit(String groupCode);

	Boolean deleteById(PJProject pjProject);

	List<ProjectEcharts> getProjectEcharts(ProjectEcharts projectEcharts);

	//2 IndexCharts getIndexCharts(IndexCharts indexCharts);

	String getProjectCode(String deptId);

	int putLog(SljptLog param);

	int getImport(List<DrTable> param);
	int updateVillage(PJVillage param, List<List<MultipartFile>> list);
	int indexImport(List<XljptIndexImport> param);

	Object upImport(List<Integer> param);

	int updateCode(int param);

	int insertTableLog(List<DrTable> param);

	int insertUpTableLog(BsWorkflowLog param);
	int addVillage(PJVillage param, List<MultipartFile> fileList1);
	int addCar(PJProjectCar param, List<MultipartFile> fileList1);
	PJVillage queryVillage(int projectId);
	List<BsAddition> getFile(BsAddition param);
	int delProject(String projectId);
	int delFile(BsAddition param);
	List<PJProjectLogExtend> queryProjectLogExtendList(String projectId, String userType);
	List<PJProject> getFatherProjectList(int deptId, String projectType);
	List<PJProjectUnit> getPjProjectUnitList(String projectId);
	void addWorkflowLog(BsWorkflowLog bsWorkflowLog, List<MultipartFile> fileList);
	int projectLogExtendPass(String rowId);
	int projectLogExtendFail(String rowId, String workflowLogId, String projectId);
	BsWorkflowLog getWorkflowLogObj(int rowId);
	int addCollect(PJProjectCollect param, List<MultipartFile> fileList);
	int addTransport(PJProjectTransport param, List<MultipartFile> fileList);
	int addLandfill(PJProjectLandfill param, List<MultipartFile> fileList);
	int addArchitecture(PJProjectBuild param, List<MultipartFile> fileList);
	PJProjectCollect queryCollect(String projectId);
	void updateCollect(PJProjectCollect param, List<MultipartFile> fileList);
	PJProjectTransport queryTransport(String projectId);
	void updateTransport(PJProjectTransport param, List<MultipartFile> fileList);
	PJProjectLandfill queryLandfill(String projectId);
	void updateLandfill(PJProjectLandfill param, List<MultipartFile> fileList);
	PJProjectBuild queryArchitecture(String projectId);// 建筑--查询
	void updateArchitecture(PJProjectBuild param, List<MultipartFile> fileList);
	List<Integer> getPjProjectUnit(int rowId);
	void relationCollect(BsRole params);
	PageInfo<PJProjectLogExtend> getProjectLogExtendList(PJProjectLogExtend params);
	PJProjectCar queryCar(int rowId);
	void setCarOne(int rowId);
	List<PJProjectCar> queryAllCar();
	PJProject queryProjectById(int rowId);
	PJProjectCollect queryCollectProject(int projectId);
	PJProjectTransport queryTransportProject(int projectId);
	PJProjectBurn queryBurnProject(int projectId);
	PJProjectKitchen queryKitchenProject(int projectId);
	PJProjectLandfill queryLandfillProject(int projectId);
	PJProjectBuild queryBuildProject(int projectId);
	List<BsAddition>  queryBsAddition(int sourceId);
	void setProjectState(int rowId);
	void setProjectState1(int id);
	void setProjectState2(int id);
	void setProjectState3(int id);
	void setProjectState4(int id);
	void setProjectState5(int id);
	void setProjectState6(int id);
	void setProjectState7(int id);
	List<PJProject> queryAllProject1();
	List<PJProjectCollect> queryAllCollect();
	List<PJProjectTransport> queryAllTransport(); 
	List<PJProjectBurn> queryAllBurn();
	List<PJProjectKitchen> queryAllKitchen(); 
	List<PJProjectLandfill> queryAllLandfill();
	List<PJProjectBuild> queryAllBuild(); 
	List<BsAddition> queryAllBsAddition(List<Integer> ids); 
	void setState(int rowId);
	void setState1(int id);
	void setState2(int id);
	void setState3(int id);
	void setState4(int id);
	void setState5(int id);
	void setState6(int id);
	//void setState7(int id);
	PJProject queryProjectByParam(int id);
	void setBsAdditionState(int id);
	List<BsWorkflowLog> queryWorkflowLog(int id);
	void setVillageState(int id);
	void setWorkflowLogState(int id);
	List<PJProject> queryAllProject2();
	List<PJVillage> queryAllVillage();
	List<BsWorkflowLog> queryAllWorkflowLog(List<Integer> id);
	List<PJProject> queryAllProject3();
	void updateProject(PJProject project);
	BsWorkflowLog getWorkflowLog(int rowId);
	void insertWorkflowLogObj(BsWorkflowLog workflowLog);
	void updateProjectState(int rowId);
	BsAddition queryBsAddition2(int id);
	PJProjectLogExtend queryProjectLogExtend(int id);
	void updateProjectLogExtend(PJProjectLogExtend pexd);
	void updateWorkflowLog2(BsWorkflowLog workflowLog);
	void setTestState(int id);
	void setProjectStateTest(int rowId);
	List<PJProject> queryAllProject4();

    List<PJProject> queryProjectListByParam(PJProject param);


	List<DSVolumeTotal> getTableFive(DSVolumeTotal params);

	List<businessWeightMonth> getTableSixTotal(businessWeightMonth params);
	List<businessWeightMonth> getTableSix(businessWeightMonth params);

	List<DSVolumeScope> getTableThree(DSVolumeScope params);

	List<PJTableFour> queryTableFour(PJTableFour param);

	List<PJTableTwo> queryTableTwo(PJTableTwo param);

    PageInfo<PJProject> queryProjectByparamsVillage(PJVillage param);

    int addVillageProject(PJProject param);
	// 保存车辆路线
	int saveCarTransportRoutes(PJProjectCarVO param);
	// 查询车辆路线
	BaseResponseDTO queryCarTransportRoutes(String vehicleId);
	// 保存之前，删除之前所保存的路线
	void deleteCarTransportRoutes(String vehicleId);
	// 初始化车辆的信息
    BaseResponseDTO initCarData();
	// 通过id初始化车辆的信息
	BaseResponseDTO initCarDataById(String deptId);
	// 通过id删除指定车辆
	Integer delCarProjectById(String carId);

    Integer addProject(ProjectVO projectVO);

	VillageDTO queryVillage1(int projectId);

	Integer updateProject1(ProjectVO projectVO);

	int updateCar1(PJProjectCar param, List<List<MultipartFile>> list);
}
